| INTERNET |  Funkcja Include   

W tym artykule chciałbym omówić i pokazać kilka przykładów praktycznego zastosowania funkcji include w języku PHP. W większości kursów tego języka jest ona opisana bardzo skromnie albo w ogóle. Pisząc ten artykuł zakładam, że znasz html’a i podstawy php.

Wyobraźmy sobie sytuację: nasza strona jest już w sieci kilka miesięcy, szybko się rozwija, ciągle powstają nowe podstrony ... i tu zaczyna się problem. Na każdej podstronie mamy kilka identycznych elementów (grafika, menu, itp.). Gdy chcemy zmienić jeden z nich, np. dodać nowy dział do menu czy jakiś element grafiki, wtedy musimy poprawiać kilkadziesiąt lub nawet kilkaset stron. Jest to bardzo mozolna i wyczerpująca praca, nie mówiąc już o wysłaniu ich wszystkich na serwer, co przy polskich, wolnych połączeniach modemowych może trwać dość długo. I tu z pomocą przychodzi nam właśnie funkcja include.

Funkcji tej używamy wstawiając poniższy kod:

<?php include("abc.html"); ?>

gdzie zamiast abc.html wstawiamy nazwę pliku, który chcemy "wkleić". Przypominam, że strona, na której wstawimy powyższy kod musi mieć rozszerzenie rozpoznawane przez Twój serwer jako plik php, np.: .php, .php3, itp. Należy pamiętać także o położeniu pliku, który chcemy includować, np.:

<?php include("katalog/abc.html"); ?>

gdy plik abc.html znajduje się w folderze katalog. A więc rozwiązaniem problemu, który przedstawiłem na początku będzie np.: stworzenie tabelki podzielonej na 3 kolumny:

<table>
<tr>
<td><?php include("menul.html"); ?></td>
<td>Właściwa zawartość strony</td>
<td><?php include("menup.html"); ?></td>
</tr>
</table>

Plik menul.html zawiera menu, które znajduje się po lewej stronie, a menup.html to co po prawej. Pośrodku natomiast wstawiamy właściwą zawartość danej strony. Tak należy zmienić każdą stronę naszego serwisu. W ten sposób, gdy dodamy nowy dział wystarczy zmienić tylko plik menul.html. Łatwe, prawda ? Teraz zajmiemy się czymś trudniejszym, lecz jeszcze bardziej ułatwiającym zarządzanie witryną. Sprawimy, aby zmieniała się tylko właściwa zawartość poszczególnych stron. Tworzymy plik np. dzial.php, który zawiera rozbudowany kod ze wcześniejszego przykładu:

<table>
<tr>
<td>><?php include("menul.html"); ?></td>
<td><?
$urls=$id.".html"; /*zamiast html musimy podać jakie
rozszerzenia mają pliki, które chcemy wkleić */
if(file_exists("$urls"))

$file=fopen($urls,"r"); /* otwiera plik o ścieżce 
dostępu równej wartości 
zmiennej $id plus rozszerzenie */

while($linia=fgets($file, 99))
{
echo($linia); // wyświetla zawartość pliku $file
}
fclose($file); // zamyka plik
}
else{
echo("<p align=\"center\"><b>BŁĄD 404</b><br><br>
Wystąpił błąd. Plik do którego prowadzi ten link NIE 
ISTNIEJE !!!<br><br><a href=\"javascript:history.back()\">Powrót</a>");
} /* Tu pojawia się informacja, gdy wystąpi błąd */
?>
</td>
<td><?php include("menup.html"); ?></td>
</tr>
</table>

Aby powyższy skrypt zadziałał link do pliku powinien wyglądać np. tak:

<a href="dzial.php?id=nazwa">Nazwa</a>

gdzie zamiast nazwa podajemy nazwę pliku (bez rozszerzenia !), który chcemy, aby pojawił się w środkowej kolumnie. Teraz opiszę działanie skryptu. W lewej kolumnie zostaje wklejony plik menul.html. Do środkowej kolumny zostaje wklejony plik, którego nazwę podaliśmy wywołując skrypt w parametrze id. Natomiast do prawej kolumny zostaje wklejony plik menup.html. W ten sposób, gdy zmienimy jakiś element graficzny naszych stron wystarczy tylko zmienić plik dzial.php. Gdy wywołamy skrypt, ale plik do wklejenia nie istnieje pojawi się komunikat o błędzie. Mam nadzieję, że wszystko jest zrozumiałe. Jest jeszcze jedna rzecz, o której chce wspomnieć. Gdy będziemy próbowali użyć kodu np.:

<?php include("xyz.php?id=1"); ?>

pojawi się błąd. Poprawnie kod powinien wyglądać tak:

<?php $id=1;
include("xyz.php");
?>

To już wszystko co chciałem przedstawić w tym artykule. Jeśli masz jakieś pytania, uwagi lub sugestie pisz na mój adres e-mail, który znajdziesz poniżej.

Autor:
Maciej WEBMAC Kazimierczuk
admin@webmac.prv.pl
http://www.webmac.prv.pl



                    
ARCHIWALIA | WEBHELP.PL | REDAKCJA                  POPRZEDNIA STRONA | SPIS TREŚCI | NASTĘPNA STRONA

CONTENTS COPYRIGHT © 2000 - 2001, KRZYSZTOF DZIEWOŃSKI. ALL RIGHTS RESERVED.